package com.budayi.common.mapper;

import java.util.List;
import java.util.Map;

/**
 * @author LIBOFEI
 * @ClassName BaseMapper
 * @Description 公共mapper
 * @date 2021/4/20 13:08
 * @Version 1.0
 **/
public interface BaseMapper<T> {


    /** *
     * 插入一条数据
     * @param t
     * @author LIBOFEI
     * @date 12:31 2021/4/20
     * @return java.lang.Long
     * @Version  1.0
     **/
    Long insertObject(T t);


    /** *
     * 从数据库中删除一个对象
     * @param id 对象主键
     * @author LIBOFEI
     * @date 12:02 2021/4/20
     * @return java.lang.Long
     * @Version  1.0
     **/
    Long deleteObjectByPrimaryKey(Object id);


    /** *
     * 删除
     * @param t 删除实体
     * @author LIBOFEI
     * @date 12:31 2021/4/20
     * @return java.lang.Long
     * @Version  1.0
     **/
    Long deleteObject(T t);



    /** *
     * 更新对象
     * @param t 更新的对象
     * @author LIBOFEI
     * @date 11:54 2021/4/20
     * @return java.lang.Long
     * @Version  1.0
     **/
    Long updateObjectByPrimaryKey(T t);


    /***
     * 更新对象状态
     * @param params 主键id
     * @author LIBOFEI
     * @date 11:54 2021/4/20
     * @return java.lang.Long
     * @Version  1.0
     **/
    Long updateObjectStatusByPrimaryKeyAndStatus(Map<String, Object> params);


    /*** *
     * 根据主键查询
     * @param id 主键
     * @author LIBOFEI
     * @date 13:57 2021/4/20
     * @return T
     * @Version  1.0
    **/
    T queryObjectByPrimaryKey(Object id);


    /*** *
     * 查询条件
     * @param t 条件查询
     * @author LIBOFEI
     * @date 14:23 2021/4/20
     * @return java.util.List<T>
     * @Version  1.0
    **/
    List<T> queryObjectListByCondition(T t);



    /** *
     * 根据ids查询对象
     * @param ids id集合
     * @author LIBOFEI
     * @date 09:31 2021/12/2>
     * @return java.util.List<T
     * @Version  1.0
     **/
    List<T> queryObjectByIds(List<?> ids);
}
